package jp.syuriken.snsw.terenaibot;

/**
 * プラグインコンテナ。
 * 
 * @author $Author$
 * @version 0.2
 */
public interface PluginContainer {
	
	/**
	 * プラグインの初期化を行う。
	 * 
	 * <p>これは必ずすべてのフックの呼び出し前に呼び出す必要があります。
	 * 呼び出さない場合の他のすべての関数の呼び出し時の動作は保証されません</p>
	 * @param configuration 設定
	 */
	void constructPlugins(BotConfiguration configuration);
	
	/**
	 * プラグインの破棄を行う。
	 */
	void destructPlugins();
	
	/**
	 * ポスト後のフック。
	 * 
	 * @param post ポストデータ
	 */
	void hookAfterPost(Post post);
	
	/**
	 * ポスト前のフック。
	 * 
	 * @param postString ポストする前の文字列
	 */
	void hookBeforePost(String postString);
}
